home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b8.d64
/
read'sprite.proc
< prev
next >
Wrap
Text File
|
2007-02-28
|
2KB
|
70 lines
9000 // DELETE "0:READ'SPRITE.PROC"
9010 // BY CAPTAIN COMAL AND FRIENDS
9020 // LIST "READ'SPRITE.PROC"
9030 //
9040 FUNC FIND'STRING CLOSED
9050 POINTER1:=PEEK(51)
9060 POINTER2:=PEEK(52)
9070 ADDRESS:=POINTER2*256+POINTER1
9080 RETURN ADDRESS+4
9090 ENDFUNC FIND'STRING
9100 //
9110 PROC READ'SPRITE'ML'DATA CLOSED
9120 //
9130 DATA 0,0,0,169,0,168,170,141
9140 DATA 168,2,141,169,2,141,170
9150 DATA 2,169,128,141,220,2,189
9160 DATA 0,4,41,1,240,10,185,168
9170 DATA 2,24,109,220,2,153,168
9180 DATA 2,232,224,24,240,8,78,220
9190 DATA 2,144,229,200,208,221,96
9200 TOTAL:=0
9210 FOR X:=680 TO 731 DO
9220 READ A
9230 POKE X,A
9240 TOTAL:+A
9250 ENDFOR X
9260 IF TOTAL<>5747 THEN
9270 PRINT "ERROR IN DATA STATEMENTS"
9280 STOP
9290 ENDIF
9300 ENDPROC READ'SPRITE'ML'DATA
9310 //
9320 PROC READ'SPRITE(BLK) CLOSED
9330 IF PEEK(683)<>169 THEN
9340 READ'SPRITE'ML'DATA
9350 ENDIF
9360 DIM LINE$ OF 24
9370 DIM SPRITE$ OF 64
9380 SPRITE$:=""; COUNT:=1
9390 READ LINE$
9400 WHILE (LINE$(1)="0" OR LINE$(1)="1") AND COUNT<64 DO
9410 WHILE LEN(LINE$)<24 DO LINE$:=LINE$+"0"
9420 IF LINE$="" THEN NULL
9430 ADDR:=FIND'STRING
9440 POKE 702,ADDR MOD 256
9450 POKE 703,ADDR DIV 256
9460 SYS 683
9470 FOR X:=0 TO 2 DO
9480 SPRITE$(COUNT):=CHR$(PEEK(680+X))
9490 COUNT:+1
9500 ENDFOR X
9510 READ LINE$
9520 ENDWHILE
9530 WHILE COUNT<64 DO
9540 SPRITE$(COUNT):=CHR$(0)
9550 COUNT:+1
9560 ENDWHILE
9570 CASE LINE$(1) OF
9580 WHEN "H","╚"
9590 SPRITE$(64):=CHR$(0)
9600 WHEN "M","═"
9610 SPRITE$(64):=CHR$(1)
9620 OTHERWISE
9630 PRINT "ERROR IN SPRITE DATA STATEMENTS"
9640 STOP
9650 ENDCASE
9660 DEFINE BLK,SPRITE$
9670 ENDPROC READ'SPRITE
9680 //